@前言
相信許多developer一定都曾經聽過、看過甚至寫過所謂的Unit Test,可能也嘗試過所謂的TDD。
但可能心裡也有很大的疑問:
「為什麼我要寫兩份程式?」
「為什麼我要寫程式來驗證我已經知道的結果?」
「我又不是SA,可能也不懂domain,怎麼產生一開始的test case?」
最後的感想就變成是:
「Unit Test,那都是說說而已」
「Unit Test?沒那美國時間啦!」
「TDD只不過是被拿來炒作而已,現實開發中,誰用TDD寫一整個大系統過?至少台灣沒有吧!」
「TDD只是先寫測試程式而已,有什麼特別的」
這一系列的文章,希望可以滿足大家的求知慾,激起大家的熱情,動手跟著作作看。
相信我,你也可以真的在TDD。
如前言所說,這個系列希望可以把TDD學習的順序,以及實際實作的順序介紹一下,讓大家可以先學每個環節,接著再把所學的組合起來,進行案例的實作。
我預計將TDD整塊大餅分成四份,分別是Testing, Refactoring, TDD, 最後輔以「ATDD與BDD」。設計的目標則是:「working software」
@學習順序
我對TDD建議的學習順序是:
@開發順序
TDD實際的開發順序則是:
不管是學習順序,還是實作順序,其實都是環環相扣、相輔相成。
接下來29天,則預計以上述的四個部分,來進行細部的說明與簡單的實作。(如果沒有中斷的話 :P)
@主要的大綱與精神
一、Testing
二、Refactoring
三、TDD, ATDD, BDD
四、開發實例
五、總結
@總訣
最後則是用來貫穿整系列文章的總訣:
「程式碼的存在是為了,也只為了滿足使用者需求,而不是寫給工程師自己爽的」
@補充
感謝海綿寶寶提醒,這邊補上一些專有名詞的全名:
@目錄與附錄
文章分類與推薦的參考資料,請參考:[30天快速上手TDD]總結
是我粗心了,沒補上全名。
TDD: Test-Driven Development
ATDD: Acceptance Test-Driven Development
BDD: Behavior-Driven Development
CI: Continuous Integration
感謝海綿寶寶大人的提醒
是我自己才疏學淺
請受小囉囉們頂禮膜拜先~~~
客氣了,我也是小嘍囉啊
沒共襄盛舉一下,對自己交代不過去...不過這段時間真的是忙到翻掉。
只能希望接下來29天,可以擠出一點A罩杯。
偶像出現了~~
我都寫 test case 喔~
雖然還是沒有辦法TDD,功力太淺~
再看過前輩的文章後~整個就是醍醐灌頂阿~~
Orz 您太客氣了。
目前還只是在畫輪廓而已,希望能有時間,把整個系列寫完。
這一次很趕,剛好臨時殺出許多緊急又重要的任務,被逼著趕鴨子上架。
如果文章寫的太少、太淺,或有哪邊不清楚或寫錯,還請大家幫忙提出指正一下。